#ifndef _DKGL_H_
#define _DKGL_H_

#include "dkglBezier.h"
#include "dkglCamera.h"
#include "dkglController.h"
#include "dkglFixedPoint16.h"
#include "dkglFont.h"
#include "dkglLight.h"
#include "dkglObject.h"
#include "dkglRenderProf.h"
#include "dkglScene.h"
#include "dkglTexture.h"
#include "dkglTerrain.h"
#include "dkglTimer.h"
#include "dkglUtility.h"
#include "dkglVector2.h"
#include "dkglVector3.h"
#include "dkglViewport.h"
#include "dkglLog.h"
#include "dkglString.h"
#include "dkglMovable.h"
#include "dkglBox.h"
#include "dkglDrawList.h"
#include "dkglGrid.h"
#include "dkglTestIntersection.h"
#include "dkglMain.h"

// Define Global Singleton
#define g_SceneMgr			SceneManeger::GetSingleton()
#define g_ViewportMgr		ViewportManager::GetSingleton()

#define g_SceneMgrPtr		SceneManeger::GetSingletonPtr()
#define g_ViewportMgrPtr	ViewportManager::GetSingletonPtr()


namespace DKGL
{

/**
	if you want to use the ErrorHandler, SceneManeger and ViewportManeger, 
	you have to call this function when initial ur app.
*/
//bool CreateDKGLContext(HDC  hDC);
//void DestroyDKGLContext();
//
//
//class _DKGLContext
//{
//public:
//	
//private:
//	HGLRC hGLRC;
//
//	auto_ptr<Log>					mLog;
//	auto_ptr<ViewportManager>		mViewportManager;
//	auto_ptr<SceneManeger>			mSceneManeger;
//	auto_ptr<FontManager>			mFontManager;
//	auto_ptr<LightManager>			mLightManager;
//	auto_ptr<RenderProfileManeger>	mRenderProfileManeger;
//
//	friend bool CreateDKGLContext(HDC  hDC);
//	friend bool EnableOpenGL(HDC  hDC, HGLRC *hRC);
//	friend void DestroyDKGLContext();
//};



}
#endif